package com.todo.user.application.entity.bo;

import com.todo.common.common.enums.GenderEnum;
import com.todo.user.common.enums.HolidayTypeEnum;
import com.todo.user.common.enums.TravelPlanTypeEnum;
import com.todo.user.common.enums.UserSourceEnum;
import com.todo.user.common.enums.UserStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author zhangwenxiang
 * @date 2024/4/7 20:29
 * @description
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoDetailBO {

    /**
     * 主键
     */
    private Long userId;
    private String userName;
    /**
     * 昵称
     */
    private String nickName;
    /**
     * 签名
     */
    private String signature;
    /**
     * 性别
     * {@link GenderEnum}
     */
    private GenderEnum gender;
    /**
     * 出身年月日
     */
    private Date birthday;
    /**
     * 籍贯
     */
    private String nativePlace;
    /**
     * 当前城市
     */
    private String location;
    /**
     * 头像
     */
    private String headImg;
    /**
     * 背景题
     */
    private String backgroundImg;
    /**
     * 用户类型：0-普通用户
     * 注：暂无用户身份分级，默认为0
     */
    private Integer userType = 0;
    /**
     * 来源
     * {@link UserSourceEnum}
     */
    private UserSourceEnum source;
    /**
     * 用户状态
     */
    private UserStatusEnum userStatus;
    /**
     * 职业
     */
    private Integer career;
    /**
     * 出行目的
     */
    private String travelObjective;
    /**
     * 个人宣言
     */
    private String promotion;
    /**
     * 兴趣列表
     */
    private String interestList;
    /**
     * mbit
     */
    private String mbit;
    /**
     * 假期类型：学生、周末、寒暑假、自由时间
     * {@link HolidayTypeEnum}
     */
    private HolidayTypeEnum holidayType;
    /**
     * 享受生活、穷游、周末互动、特种兵、探索世界
     * {@link TravelPlanTypeEnum}
     */
    private TravelPlanTypeEnum travelPlanType;
    /**
     * 扩展信息
     */
    private String extra;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
}
